package com.cy.pj.sys.service;

import com.cy.pj.common.pojo.CheckBox;
import com.cy.pj.sys.pojo.SysRole;

import java.util.List;

public interface SysRoleService {
    /**
     * 基于条件查询角色信息
     * @param entity 封装了查询条件的对象
     * @return 查询到的角色信息
     */
    List<SysRole> findRoles(SysRole entity);
    /**
     * 新增角色以及角色对应的菜单关系数据
     * @param entity 封装了要新增的角色信息
     * @return
     */
    int saveRole(SysRole entity);
    /**
     * 基于角色 id 查询角色以及角色对应菜单关系数据
     * @param id
     * @return
     * 3种查询
     * 1多表联查 left join on
     * 2多表嵌套查询(两个select)
     * 3业务发起多次单表查询
     */
    SysRole findById(Integer id);
    /**
     * 基于角色 id 更新角色以及角色对应的菜单关系数据
     * 1更新角色自身信息
     * 2更新角色和菜单关系数据
     * 2.1先删除原有关系
     * 2.3再添加现有关系
     * @param entity
     * @return
     */
    int updateRole(SysRole entity);
    /**
     * 为用户授权时，查询可授权的角色
     * @return
     */
    List<CheckBox> findCheckRoles();
}
